#include "lvgl.h"
#include "test_win.h"
#include "main_win.h"

#include "usart.h"

LV_FONT_DECLARE(major_font_30);//声明字体  标题栏
LV_FONT_DECLARE(major_font_24);//声明字体  正文
LV_FONT_DECLARE(major_font_20);//声明字体  正文
LV_FONT_DECLARE(major_font_16);//声明字体  正文

LV_IMG_DECLARE(zc2bit);//声明图片  2bit战车


static lv_obj_t *main_win = NULL;//main_win窗口容器


////内存打印输出
//static void memory_print(void)
//{
//    lv_mem_monitor_t mon;
//    lv_mem_monitor(&mon);
//    printf("used: %6d (%3d %%), frag: %3d %%, biggest free: %6d\n", (int)mon.total_size - mon.free_size,
//                mon.used_pct,
//                mon.frag_pct,
//                (int)mon.free_biggest_size);
//}





//创建三个按钮
lv_obj_t * main_btn_home,* main_btn_menu,* main_btn_return;

uint8_t win_id = 0;//标记界面ID

//mainwin界面按键回调
//主页
//static void main_btn_home_cb(lv_event_t* event)
//{

//}

////菜单
//static void main_btn_menu_cb(lv_event_t* event)
//{

//}

////返回
//static void main_btn_return_cb(lv_event_t* event)
//{

//}




//创建主界面
void main_win_create()
{
	static lv_style_t obj_style;
  lv_style_reset(&obj_style);
  lv_style_init(&obj_style); // 样式初始化
  lv_style_set_radius(&obj_style, 0); // 设置样式圆角弧度 
	main_win = lv_obj_create(lv_scr_act());  // 创建一个屏幕来模拟容器
	if (main_win != NULL)//创建成功
	{
		//设置窗口特性
    //lv_obj_set_style_bg_color(main_win, lv_palette_main(LV_PALETTE_NONE), 0);//不设置背景色就默认白色
    lv_obj_set_size(main_win, 320, 480);
    lv_obj_add_style(main_win, &obj_style, 0);
		lv_obj_set_scrollbar_mode(main_win,LV_SCROLLBAR_MODE_OFF);//不显示滚动条
		
		
		//创建标签文本
//		lv_obj_t *label = lv_label_create(test_win); // 创建标签文本		
//		lv_obj_set_style_text_font(label, &major_font_24, 0);        // 设置标签文本
//		lv_label_set_text(label, "单兵"); // 设置文本
		


    /* 创建一个btn部件(对象) */
    lv_obj_t * btn = lv_btn_create(main_win);       // 创建一个btn部件(对象),他的父对象是活动屏幕对象
    // 修改按钮部件（对象）矩形背景部分的样式
    lv_obj_set_style_bg_color(btn, lv_color_hex(0x1e1e1e), LV_PART_MAIN | LV_STATE_PRESSED);
    // 打开了 LV_OBJ_FLAG_CHECKABLE ，当对象被点击时有选中切换(Toggle)状态的效果
    // 其触发的是 LV_EVENT_VALUE_CHANGED 事件类型
    lv_obj_add_flag(btn, LV_OBJ_FLAG_CHECKABLE);
    // 处理 LV_EVENT_VALUE_CHANGED 事件类型示例
//    lv_obj_add_event_cb(btn, btn_toggle_event_cb, LV_EVENT_VALUE_CHANGED, NULL);
		
		
		
		lv_obj_set_align(btn,LV_ALIGN_CENTER);
		lv_obj_set_height(btn,50);
		lv_obj_set_width(btn,50);
		
		
		/* 创建表格*/
		/* 创建 table 部件 */
		lv_obj_t* table = lv_table_create(main_win);	
		lv_obj_set_style_text_font(table, &major_font_24, 0);// 下拉列表设置新的字体

		/* 设置 table 部件的单元格文本 */
		lv_table_set_cell_value(table, 0, 0, "123");//obj,row行,col列,text
		lv_table_set_row_cnt(table,2);
		lv_table_set_col_cnt(table,2);
		lv_table_set_cell_value(table, 1, 0, "单兵");//obj,row,col,text
		lv_table_set_cell_value(table, 0, 1, "坦克");//obj,row,col,text
		lv_table_set_cell_value(table, 1, 1, "搭乘");//obj,row,col,text
		//lv_obj_center(table);
		lv_obj_set_pos(table,20,180);
		
		//创建图片
		lv_obj_t* img;
	  img = lv_img_create(main_win);                                                              /* 定义并创建图像 */
    lv_img_set_src(img, &zc2bit);                                                                 /* 填充图像 */
    lv_obj_align(img, LV_ALIGN_CENTER, 0, 120);                                    /* 设置图像位置 */   
//    lv_obj_update_layout(img);//not used



	}

}









//lvgl  
void lv_win_start()
{
	printf("lv win start\r\n");
	//main_win_create();
		test_win_create();
	
}





